package com.demo;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

/**
 * @Author likz
 * @Date 2025/3/28 9:21
 * @Description
 **/
public class ClientTest {

    public static void main(String[] args) {
        String hostname = "127.0.0.1"; // 服务器的地址，这里使用localhost代表本机
        int port = 65525; // 服务器的端口号，需要与服务器端一致
        try (Socket socket = new Socket(hostname, port)) {
            System.out.println("已连接到服务器");
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // 自动刷新输出流，发送数据后立即输出到服务器
            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); // 从标准输入读取数据
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 从服务器读取数据

            String userInput;
            while ((userInput = stdIn.readLine()) != null) { // 循环读取用户输入
                out.println(userInput); // 发送数据到服务器
                if (userInput.equalsIgnoreCase("exit")) { // 如果用户输入"exit"，则退出循环并关闭连接
                    break;
                }

                // 读取服务器的响应
                String serverResponse = in.readLine();
                if (serverResponse != null) {
                    System.out.println("服务器响应: " + serverResponse);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
